#!usr/bin/python
# -*- coding: UTF-8 -*-

'''
递归求解汉诺塔
问题一（"将x上的63个盘子借助z移到y上"）拆解为：
将前62个盘子从x移动到z上
将最底下的第63个盘子移动到y上
将z上的62个盘子移动到y上

问题二（"将y上的63个盘子借助x移到z上"）拆解为：
将前62个盘子从y移动到x上
将最底下的第63个盘子移动到z上
将x上的62个盘子移动到y上
'''
def hanoi(n, x, y, z):
    if n == 1:
        print(x, ' --> ', z)
    else:
        hanoi(n - 1, x, z, y)#将前（n - 1）个盘子从x移动到y上
        print(x, ' --> ', z) #将最底下的最后一个盘子从x移动到z上
        hanoi(n - 1, y, x, z) #将y上的n - 1个盘子移动到z上

n = int(input('请输入汉诺塔的层数：'))
hanoi(n, 'x', 'y', 'z')





